1. Field of the Invention
The present invention relates generally to the recording of data onto optical media, and more specifically to a method for more efficiently processing data files selected for recording to an optical media.
2. Description of the Related Art
The storage of data to optical media has gradually, but steadily, increased in popularity and frequency of use. A typical consumer computer owner and operator counts a re-writable compact disc, or other optical media, drive among standard equipment for the home or office computer system. As the use of optical media continues to grow, so too does the demand for faster and less complicated recording applications and processes.
As is known, the process for recording data to an optical media generally includes the selection of data files to be recorded, also known as “burned,” to an optical media, the processing of the files for recording, and the actual burning of the files to the target optical media. The recording speed of the selected data is effected by such variables as the quantity, size, and location of the selected files, the time required to process the selected data files for burning to a target optical media, and the write speed of the optical media recording device selected for the burn.
In pursuing efforts to increase the speed of recording to optical media, or decreasing the recording time, the quantity, size and location of selected files can be treated as constants, and hardware improvements are regularly improving the recording speed of optical media recording devices. The processing of data files for recording presents additional opportunities for developing faster recording to optical media while maintaining simplicity for ease of consumer use.
The prior art processing of files in preparation for burning to optical media consists generally of a plurality of process operations including such operations as the examination of selected data files, the creation of record data structures, the determination of a writing order, the creation of ordering data structures, the generation of a file system, and other such process operations to enable the locating of selected source files and burning of the files to a target optical media.
One of the plurality of process operations performed in the preparation of selected files to be burned to optical media is the generation of the file system. Typically, the generating of the file system includes the mapping of the source path of each of the files selected to be burned to an optical media, in addition to a plurality of process operations completed to place each of the selected files onto the target optical media. All files to be burned to an optical media are entered into a database. This database calls a source path from a path table or path tree configured to contain a file source path for each of the files selected to be recorded. During a typical recording process, the processing of the files in preparation for the burn includes the verification of each of the selected files to ensure that they exist in the location identified, that they can be opened, that they are the size that they have been identified to be, and other such verification processes. Each file in the constructed database is verified, and as each file is verified, the database calls the path tree or path table to locate a selected file at its source using the stored source path.
FIG. 1A shows a block diagram 10 of this single process of calling the source path. A database 12 is constructed during the processing of the files selected for recording to an optical media in preparation for the burn. The database 12 includes, for example, the source file name, location, size, type, and other such identifying data. The processing operations include, for example, the verification of the selected files in which the general integrity of the files is verified in preparation for burning the files to a target media. As each file is verified, the database 12 calls the path tree 14 to obtain the source path for the selected file.
Prior art processing is typically configured to conserve memory. Often, the conservation of memory resources is at the cost of performance. In the example of the processing of data files in preparation to burn to a target optical media, the conservation is exemplified in the manner in which the path tree 14 stores and retrieves source paths of files. Each time a source file is stored to the path tree 14, a short-hand or key is used to identify each node of the source path. FIG. 1B shows a block diagram of an exemplary source path 20 with nodes identified by keys 0–6. In FIG. 1B, a source path that is on root c:\ is shown. The root, c:\, is shown in block 22 and is identified as node 0 at 24. In the exemplary source path 20, each node is a directory that can be traced back to root c:\ at node 0, 24. By way of example, file2 in block 52 is in the directory source6 in block 46. The directory source6 is identified as node 6 at 48. As can be seen, source6 in block 46, is a sub-directory of source5 in block 42, which is a sub-directory of source4 in block 38, which is a sub-directory of source3 in block 34, and so forth back to the root, c:\ in block 22. Each of directories source1 at 26, source2 at 30, source3 at 34, source4 at 38, source5 at 42, and source6 at 46, can contain any number of files or additional sub-directories. Each directory is shown in FIG. 1B as being identified as a node. By following arrows 21, each node can be traced back to its parent, and eventually to the root, c:\at 22. An exemplary path for file2 in block 52 is therefore file2 in block 52 at node 6, 48, which is traced to node 5 at 44, which is traced to node 4 at 40, which is traced to node 3 at 36, which is traced to node 2 at 32, which is traced to node 1 at 28 and back to the root at node 0, 24. A typical path statement for file2 at block 52 would be: c:\source1\source2\source3\source4\source5\source6\file2. A short-hand path notation for the same file might instead be: 6\file2, where it is known that “6” represents node 6 at 48, and the key for identifying node 6, 48, is known or identified in the path tree 14 (see FIG. 1A).
When files are processed during preparation for burning to optical media, the use of nodes in source paths conserves memory by utilizing a short-hand notation instead of the complete source path. FIG. 1C shows a typical source path 52a for file2 at 52 as described above in reference to FIG. 1B. The illustrated source path 52a identifies file2 at 52 as a file in the directory at node 6, 48. In order to verify file2 at 52, however, the entire source path must be identified in order to verify a correct source path for the file, and to locate and verify the file as described above. The source path 52a therefore calls “get(6)” to return the source path to the last node before the file, and then adds the file, file2 at 52, to the node. The prior art convention of storing the source paths using short-hand notation traces the file from the first identified node to the root. In the instant example, the returned path might look like: 6→5→4→3→2→1→0, where the returned source path traces through each node back to the root. Because the path tree has stored the key for each of the identified nodes, the complete source path is provided. Further, because each path for each of the files in the database 12 (FIG. 1A) is stored in short-hand notation as illustrated, memory is conserved.
As stated above, the conservation of memory is often at the expense of performance. In the instant example, although memory is saved in the use of the illustrated short-hand notation, each time a file is processed, the path is traced back through each identified node to the root. If a file is close to the root, the processing speed is only minimally impacted as the tracing is through minimal nodes. In the case of files that are located deep within a directory's hierarchy, however, the processing is more complex as files are traced through more and more nodes. When the number of files being processed is great, performance degradation is compounded. A typical recording operation to optical media can include hundreds, even thousands, of files, and processing performance in the manner as just described can be significantly impacted.
In view of the foregoing, what is needed is a method for processing files in preparation for burning to optical media that quickly and accurately identifies the selected file source paths without significantly degrading system performance. The method should be able to be implemented in existing applications, and should be configured to provide a consumer with fast and efficient file processing of selected files for burning to optical media without requiring specialized knowledge or skill on the part of the consumer.